package com.ruoyi.system.domain;

import java.math.BigDecimal;

import com.ruoyi.system.entity.AbdulBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;

/**
 * 记账本收入类型，定义收入类别及其属性对象 accounting_income_categories
 *
 * @author ruoyi
 * @date 2025-05-13
 */
@Data
@ApiModel("记账本收入类型，定义收入类别及其属性")
public class AccountingIncomeCategories extends AbdulBaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 收入类型表唯一标识ID，主键自增
     */
    @ApiModelProperty("收入类型表唯一标识ID，主键自增")
    private Long id;

    /**
     * 收入类型排序权重（数值越小越靠前），用于前端列表展示顺序
     */
    @Excel(name = "收入类型排序权重", readConverterExp = "数=值越小越靠前")
    @ApiModelProperty("收入类型排序权重（数值越小越靠前），用于前端列表展示顺序")
    private Long sortOrder;

    /**
     * 收入类型分类（primary=主营业务收入，secondary=副业收入，other=其他收入）：primary（如门店销售、服务收入），secondary（如投资收益、租金收入），other（如红包收入、临时补贴）
     */
    @Excel(name = "收入类型分类", readConverterExp = "p=rimary=主营业务收入，secondary=副业收入，other=其他收入")
    @ApiModelProperty("收入类型分类（primary=主营业务收入，secondary=副业收入，other=其他收入）：primary（如门店销售、服务收入），secondary（如投资收益、租金收入），other（如红包收入、临时补贴）")
    private String incomeType;

    /**
     * 收入类型名称（如"商品销售""服务费""投资收益"）
     */
    @Excel(name = "收入类型名称")
    @ApiModelProperty("收入类型名称")
    private String categoryName;

    /**
     * 收入类型是否启用（0=禁用，1=启用）：禁用后该类型将无法被选择
     */
    @Excel(name = "收入类型是否启用", readConverterExp = "0==禁用，1=启用")
    @ApiModelProperty("收入类型是否启用（0=禁用，1=启用）：禁用后该类型将无法被选择")
    private Integer isActive;

    /**
     * 收入类型图标URL（如"https://example.com/icons/sales.png"），用于前端分类标识
     */
    @Excel(name = "收入类型图标URL")
    @ApiModelProperty("收入类型图标URL（如\"https://example.com/icons/sales.png\"），用于前端分类标识")
    private String iconUrl;

    /**
     * 适用税率（如6.00表示6%税率），用于自动计算税后收入
     */
    @Excel(name = "适用税率", readConverterExp = "如=6.00表示6%税率")
    @ApiModelProperty("适用税率（如6.00表示6%税率），用于自动计算税后收入")
    private BigDecimal taxRate;

    /**
     * 是否含税（0=不含税，1=含税）：标记收入金额是否已包含税金
     */
    @Excel(name = "是否含税", readConverterExp = "0==不含税，1=含税")
    @ApiModelProperty("是否含税（0=不含税，1=含税）：标记收入金额是否已包含税金")
    private Integer isTaxIncluded;

    /**
     * 手机号
     */
    @Excel(name = "手机号")
    @ApiModelProperty("手机号")
    private String phone;
}